#pragma once
#include <string>
#include <windows.h>
#include "imm.h"

using namespace std;

class CompStr;
class CandList;

class IMCLock
{
public:
	IMCLock(HIMC hIMC);
	~IMCLock(void);
protected:
	HIMC himc;
	INPUTCONTEXT* ic;
	CompStr* compStr;
	CandList* candList;
	// dreamer.080305.begin
	static string stroke;
	// dreamer.080305.end
public:
	CompStr* getCompStr(void);
	CandList* getCandList(void);
	INPUTCONTEXT* getIC(){	return ic;	}
	HIMC getHIMC(){	return himc;	}
	bool lock(void);
	void unlock(void);
	bool isChinese(void);
	bool isFullShape(void);
	bool isVerticalComp(void);
	string &setStroke(string &str);
	const string &getStroke();
};
